home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / patch / sas_cv6.57 / _tzset.c < prev    next >
C/C++ Source or Header  |  1996-08-04  |  1KB  |  79 lines

  1. /***
  2. *
  3. *          Copyright © 1996  SAS Institute, Inc.
  4. *
  5. * name             __tzset -- set time zone parameters
  6. *
  7. * synopsis         __tzset();
  8. *
  9. * description      This function sets the time zone variables __daylight,
  10. *                  __timezone, and __tzname from the information in the
  11. *                  TZ environment variable.
  12. *
  13. ***/
  14.  
  15. #include <time.h>
  16. #include <stdlib.h>
  17. #include <string.h>
  18.  
  19.  
  20.  
  21. void __tzset()
  22. {
  23.     char   *p;
  24.     int    x;
  25.  
  26.  
  27. #ifdef LESS_GETENV
  28.  
  29.     p = _TZ;
  30.     if (p == NULL)
  31.     {
  32.        p = __getenv("TZ");
  33.        if (p == NULL) 
  34.           p = "CST6";
  35.        _TZ = p;
  36.     }
  37.     else return;
  38.  
  39. #else
  40.  
  41.     char *q;
  42.     q = p = __getenv("TZ");
  43.  
  44.     if (p == NULL)
  45.         p = _TZ;
  46.  
  47. #endif
  48.  
  49.     if (p == NULL)
  50.         p = "CST6";
  51.  
  52.     __tzstn[0] = p[0];
  53.     __tzstn[1] = p[1]; 
  54.     __tzstn[2] = p[2];
  55.     __tzstn[3] = '\0';
  56.  
  57.     __tzname[0] = __tzstn;
  58.  
  59.     p += __stcd_i(&p[3], &x) + 3;
  60.     __timezone = x * 3600;
  61.  
  62.     if (*p != '\0') {
  63.         __tzdtn[0] = p[0];
  64.         __tzdtn[1] = p[1];
  65.         __tzdtn[2] = p[2];
  66.         __tzdtn[3] = '\0';
  67.         __daylight = 1;
  68.     } else {
  69.         __tzdtn[0] = '\0';
  70.         __daylight = 0;
  71.     }
  72.  
  73.     __tzname[1] = __tzdtn;
  74.     
  75. #ifndef LESS_GETENV
  76.     if (q) free(q);
  77. #endif
  78. }
  79.